package com.dlts.freemarker.entity;

import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * <p>
 * 
 * </p>
 *
 * @author DLTS
 * @since 2022-01-11
 */
@Getter
@Setter
@Accessors(chain = true)
@ApiModel(value = "Column对象", description = "")
public class Column extends Model<Column> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "表目录")
    private String tableCatalog;

    @ApiModelProperty(value = "库名")
    private String tableSchema;

    @ApiModelProperty(value = "表名")
    private String tableName;

    @ApiModelProperty(value = "列名")
    private String columnName;

    @ApiModelProperty(value = "顺序位置")
    private Long ordinalPosition;

    @ApiModelProperty(value = "列默认值")
    private String columnDefault;

    @ApiModelProperty(value = "是否为空(不能为空=NO,可以为空=YES)")
    private String isNullable;

    @ApiModelProperty(value = "(列)数据类型(varchar)")
    private String dataType;

    @ApiModelProperty(value = "字符最大长度(字符类型才有)")
    private Long characterMaximumLength;

    @ApiModelProperty(value = "字符八位字节长度(整数类型才有)")
    private Long characterOctetLength;

    @ApiModelProperty(value = "数值精度(浮点数类型才有)")
    private Long numericPrecision;

    @ApiModelProperty(value = "小数精度(浮点数类型才有)")
    private Long numericScale;

    @ApiModelProperty(value = "日期时间精度")
    private Long datetimePrecision;

    @ApiModelProperty(value = "字符集名称")
    private String characterSetName;

    @ApiModelProperty(value = "排序规则名称")
    private String collationName;

    @ApiModelProperty(value = "列类型(varchar(32))")
    private String columnType;

    @ApiModelProperty(value = "列主键(主键=PRI)")
    private String columnKey;

    @ApiModelProperty(value = "额外说明")
    private String extra;

    @ApiModelProperty(value = "特权")
    private String privileges;

    @ApiModelProperty(value = "列注释")
    private String columnComment;


    @Override
    public Serializable pkVal() {
        return null;
    }

}
